package com.example.application;

import java.lang.Thread.UncaughtExceptionHandler;
import java.text.DateFormat;

/**
 * ϵͳ�쳣�������
 * 
 * @author Administrator
 * 
 */
public abstract class BaseExceptionHandler implements UncaughtExceptionHandler {
	public static final String TAG = "CrashHandler";

	protected static final DateFormat dateFormat = DateFormat
			.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
	
	/**
	 * δ������쳣������ת 
	 * 
	 */
	
	@Override
	public void uncaughtException(Thread thread, Throwable ex) {
		// TODO Auto-generated method stub
		if(handleException(ex)){
			try {
				//������ˣ��ó����������3�����˳�����֤������־�ı���
				Thread.sleep(3000);
			} catch (InterruptedException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			
			//�˳�����
			android.os.Process.killProcess(android.os.Process.myPid());
			System.exit(1);
		}
	}
	
	/**
	 * �Զ�������?�ռ�������Ϣ���ʹ��󱨸��ٴ���ɣ������߿��Ը���Լ�������������쳣�����߼�
	 * 
	 * @param ex
	 * @return
	 */
	public abstract boolean handleException(Throwable ex);
}
